/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uy.edu.ort.uruguayviajes.dao.servicios;


import java.util.Date;
import java.util.List;
import javax.ejb.Local;
import uy.edu.ort.comun.dominio.dto.PaqueteDTO;
import uy.edu.ort.comun.dominio.dto.ReservaDTO;
import uy.edu.ort.comun.dominio.dto.UsuarioDTO;
import uy.edu.ort.uruguayviajes.dao.entities.PaqueteTuristico;
import uy.edu.ort.uruguayviajes.dao.entities.Reserva;
import uy.edu.ort.uruguayviajes.dao.entities.Usuario;
import uy.edu.ort.uruguayviajes.dao.excepcion.DaoException;


/**
 *
 * @author dberriel
 */
@Local
public interface DaoServices {

    /**
     * Ingresa una reserva para un usuario
     * @param usuario
     * @param paquete
     * @param resultado 
     */
     public void ingresarReserva(UsuarioDTO usuario, PaqueteDTO paqueteDto, String autorizacion, String tarjeta) throws DaoException;
     
     /**
      * Obtiene la lista de reservas de un usuario
      * @param usuario
      * @return 
      */
     public List<ReservaDTO> obtenerReservas(UsuarioDTO usuario)throws  DaoException;
     
     /**
      * obtiene un usuario
      * @param nomUsuario
      * @return 
      */
     public Usuario obtenerUsuario(String nomUsuario)throws  DaoException;
     
     /**
      * obtiene un usuarioDTO
      * @param login
      * @return 
      */
     public UsuarioDTO obtenerUsuarioDTO(String login)throws  DaoException;
     
     /**
      * Ingresa un usuario
      * @param nombres
      * @param apellidos
      * @param sexo
      * @param fNacimiento
      * @param direccion
      * @param telefono
      * @param codigoPostal
      * @param ciudad
      * @param email
      * @param usuario
      * @param password 
      */
     public void ingresarUsuario(String nombres, String apellidos, String sexo, Date fNacimiento, 
             String direccion, String telefono, String codigoPostal, String ciudad, String email, String usuario, String password) throws  DaoException;
     
     /**
      * Devuelve true si existe el usuario y coincide el login con el password
      * @param login
      * @param password
      * @return 
      */
     public boolean validarUsuario(String login, String password)throws  DaoException; 
     
     /**
      * cambia el estado de una reserva
      * @param codAutorizacion
      * @param estado 
      */
     public void actualizarReserva(String codAutorizacion, String estado) throws  DaoException;
}
